|
900612 ESP -- SURF Center : Point Feature Alignment
This page last changed on May 21, 2012 by brian.
OverviewOnce the points of interest are extracted from both the GAL file and image our next goal is to align the GAL points to those on the image. The basic algorithm works as follows: The Alignment AlgorithmThe BasicsThe basic building block of algorithm is a chromosome. Our chromosome encodes information that represents 3 points, where a point is an x, y pair in image pixel coordinates. Only two points are used, but the 3rd point would be useful if we ever need to run an affine transform instead of a linear transform. An individual chromosome is created as follows: import org.mbari.esp.ia.geometry.Point2D import org.mbari.esp.ia.ga.PointChromosome val p0 = Point2D(10, 10) val p1 = Point2D(20, 20) val p2 = Point2D(30, 30) val chromosome = PointChromosome(p0, p1, p2) Why use a chromosome to represent the points? Originally, feature alignement was done using a genetic algorithm, but it's been refined so that we now use some considerable less complex. The goal of our feature alignment is to find a non-rigid transform that rotates, scales and translates the gal points in euclidean space to align with point features extracted from the image. The recipe for this has several steps:
The basic goal of the genetic algorithm is to take 2 points from the GAL and match them to the corresponding 2 points on the image. To achieve this we do the following:
|
| Document generated by Confluence on Feb 03, 2026 14:16 |